iT邦幫忙

2022 iThome 鐵人賽

DAY 8
0
Modern Web

菜鳥30日自學SASS及SCSS系列 第 8

【D-8】Sass/SCSS 基本語法-巢狀

  • 分享至 

  • xImage
  •  

巢狀結構 Nesting

使用 & 符號來引用父選擇器。(需注意縮排寫法)

在另一個規則中宣告新規則時,它就稱為巢狀。
一般CSS需要重複寫許多父元素選擇器,才能寫出巢狀的階層結構,降低整體可讀性、樣式設定的彈性。
但在SASS裡的巢狀結構,可以清楚的知道元素上下層的關聯性,降低父元素重複性,大幅減少編寫重複的開頭,加速程式開發的時間。

!!!須注意Nesting 不宜過於肥厚,如果太多層,選擇器階層性過長,會導致瀏覽器渲染時間會比較久。!!!

// scss // //像父子元素一樣層層包住。//
nav {
  ul {
    margin: 0;
    padding: 0;
    list-style: none;
  }

  li { display: inline-block; }

  a {
    display: block;
    padding: 6px 12px;
    text-decoration: none;
  }
}

 編|
 譯|  
 後|
  V

// CSS //  //需要寫許多 nav 父元素//
nav ul {
  margin: 0;
  padding: 0;
  list-style: none;
}
nav li {
  display: inline-block;
}
nav a {
  display: block;
  padding: 6px 12px;
  text-decoration: none;
}

常用的屬性:
font -> font-familyfont-sizefont-weight
backgroud -> background-colorbackground-positionbackground-sizebackground-image

例如:

// scss //

.main {
  font: {
      family: Arial,serif,sans-serif;
      size: 100px;
      weight: normal;
  }
}

 編|
 譯|  
 後|
  V

// CSS //

.main {
  font-family: Arial, serif, sans-serif;
  font-size: 100px;
  font-weight: normal;
}

在嵌套狀態下,想取得外層的父選擇器,可使用& 符號
用於 CSS 元件狀態::hover:focus:before:after:link:visited

例如:

// scss //

#main {
  display: block;
  a {
      color: #5b90d0;
      &:hover, &:active, &:focus {
          color: #a00606;
          outline: none;
          text-decoration: none !important;
      }
  }
}

 編|
 譯|  
 後|
  V

// CSS //

#main {
  display: block;
}
#main a {
  color: #5b90d0;
}
#main a:hover, #main a:active, #main a:focus {
  color: #a00606;
  outline: none;
  text-decoration: none !important;
}

上一篇
【D-7】Sass/SCSS 基本語法-變數(2)
下一篇
【D-9】Sass/SCSS 基本語法- 混入
系列文
菜鳥30日自學SASS及SCSS30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言